Stored Procedures এবং Functions হল MySQL ডেটাবেসের অংশ, যা পুনরায় ব্যবহৃত কোড বা লজিক সঞ্চয় করে এবং ডেটাবেসের মধ্যে কার্যক্রমের অটোমেশন করতে সহায়তা করে।
- Stored Procedure: একটি স্টোরড প্রসিডিউর হল এক বা একাধিক SQL স্টেটমেন্টের একটি সংগ্রহ যা ডেটাবেসে সংরক্ষিত থাকে এবং পুনরায় ব্যবহার করা যায়।
- Function: একটি ফাংশন হল একটি SQL কোড ব্লক যা একটি একক মান (যেমন, সংখ্যা বা স্ট্রিং) রিটার্ন করে।
1. Stored Procedure তৈরি করা
একটি স্টোরড প্রসিডিউর সাধারণত ডেটাবেসে কিছু কার্যক্রম সম্পাদন করার জন্য ব্যবহৃত হয়, যেমন ডেটা ইনসার্ট, আপডেট, বা ডিলিট করা। এটি একাধিক SQL স্টেটমেন্টকে একত্রে একটি ব্লক হিসেবে সংরক্ষণ করে।
Stored Procedure তৈরি উদাহরণ:
ধরা যাক, আমাদের একটি employees টেবিল আছে, যেখানে কর্মচারীদের তথ্য রয়েছে। আমরা একটি স্টোরড প্রসিডিউর তৈরি করব যা একটি নির্দিষ্ট ডিপার্টমেন্টের সমস্ত কর্মচারীর তথ্য নির্বাচন করবে।
Stored Procedure তৈরি:
DELIMITER
DELIMITER ;
এখানে:
IN dept_name VARCHAR(50): এটি একটি ইনপুট প্যারামিটার যা ডিপার্টমেন্টের নাম নেয়।SELECTকুয়েরি ডিপার্টমেন্ট অনুযায়ী কর্মচারীদের তথ্য বের করে।
Stored Procedure কল করা:
CALL GetEmployeesByDepartment('HR');
এই কুয়েরি HR ডিপার্টমেন্টের সমস্ত কর্মচারীর তথ্য প্রদান করবে।
2. Function তৈরি করা
একটি Function সাধারণত একটি নির্দিষ্ট মান রিটার্ন করে এবং এটি SQL কুয়েরিতে সরাসরি ব্যবহার করা যেতে পারে। ফাংশনগুলো একটি মান রিটার্ন করে, এবং এর ভিতরে যেকোনো ধরনের SQL অপারেশন থাকতে পারে।
Function তৈরি উদাহরণ:
ধরা যাক, আমাদের একটি employees টেবিল আছে এবং আমরা একটি ফাংশন তৈরি করব যা কর্মচারীর বেতন এবং বোনাস যোগ করে মোট বেতন রিটার্ন করবে।
Function তৈরি:
DELIMITER
DELIMITER ;
এখানে:
emp_id: ফাংশনের ইনপুট প্যারামিটার, যা কর্মচারীর আইডি নেয়।base_salaryএবংbonus: কর্মচারীর বেতন এবং বোনাস ফেচ করে এবং তাদের যোগফল হিসাব করেtotal_salaryরিটার্ন করে।
Function কল করা:
SELECT CalculateTotalSalary(101);
এটি employee_id 101 এর জন্য মোট বেতন (বেতন + বোনাস) রিটার্ন করবে।
Stored Procedure এবং Function এর মধ্যে পার্থক্য
| Feature | Stored Procedure | Function |
|---|---|---|
| Return Type | কোন কিছু রিটার্ন নাও করতে পারে (ডেটা পরিবর্তন করে)। | একটি নির্দিষ্ট মান (যেমন, সংখ্যা বা স্ট্রিং) রিটার্ন করে। |
| Usage in SQL | CALL কৌশলে কল করা হয়। | সাধারণ SQL কুয়েরিতে ব্যবহার করা যেতে পারে (যেমন, SELECT কুয়েরি)। |
| Transactional Support | একটি বা একাধিক ট্রানজেকশন সমর্থন করে। | সাধারণত একটি একক মান রিটার্ন করে, ট্রানজেকশন সমর্থন নাও করতে পারে। |
| Side Effects | ডেটাবেসের মধ্যে সাইড এফেক্ট তৈরি করতে পারে (ইনসার্ট, আপডেট, ডিলিট)। | ডেটাবেসের মধ্যে কোন সাইড এফেক্ট তৈরি করে না। |
সারাংশ
- Stored Procedures ব্যবহৃত হয় দীর্ঘ বা পুনরায় ব্যবহৃত SQL কোড লজিক সংরক্ষণ করার জন্য এবং এটি ডেটাবেসের কার্যকলাপ যেমন ডেটা ইন্সার্ট, আপডেট, বা ডিলিট করতে পারে।
- Functions একটি নির্দিষ্ট মান রিটার্ন করে, যা সরাসরি SQL কুয়েরিতে ব্যবহার করা যায়।
- Stored Procedure সাধারণত ব্যাকএন্ড লজিক পরিচালনা করতে ব্যবহৃত হয়, যেখানে Functions সাধারণত একক মান বের করতে ব্যবহৃত হয় যা SQL কুয়েরিতে সোজা ব্যবহার করা যায়।
Read more